package org.jeecg.modules.sistersophie.facade;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.lowagie.text.DocumentException;
import org.jeecg.modules.sistersophie.entity.AccountTransaction;
import org.jeecg.modules.sistersophie.entity.InvoiceInfo;
import org.jeecg.modules.sistersophie.model.request.InvoiceAddRequest;
import org.jeecg.modules.sistersophie.model.request.InvoicePaymentCompletedRequest;
import org.jeecg.modules.sistersophie.model.response.AccountTransactionResponse;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.OutputStream;

public interface InvoiceFacade {

     void addInvoice(InvoiceAddRequest addRequest);

     void updateInvoice(InvoiceAddRequest addRequest);

     void paymentCompleted(InvoicePaymentCompletedRequest request);

     void deleteInvoice(String id);

     IPage<InvoiceInfo> pageList(InvoiceInfo accountTransaction, Integer pageNo, Integer pageSize, HttpServletRequest req);

     void generatePdfFile()  throws IOException, DocumentException;

    void downLoadPdf(ModelAndView mv,String invoiceId);

    void sendEmail(String invoiceId,String paymentMethod);

    void updatePayWaringFlag(String lastPayTime);
}
